Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Optimise bb.js package size and sandox/cli dockerfiles to unbloat final containers. #3462

Merged
merged 11 commits into from
Nov 29, 2023

Conversation

charlielye
Copy link
Contributor

@charlielye charlielye commented Nov 29, 2023

We're making efforts to streamline our container sizes. They shouldn't really be any "bigger" than an equivalent npm download and package install.

  • bb.js inlined the two wasms creating a 50mb monster index.js because:
    • The wasm symbol stripping was not being done after wasm creation in the bb wasm container.
    • The two wasms ended up duplicated in the bundle due to webpack inline the workers, and seemingly unable to reason they're the same thing even using chunks.
  • Given that bb.js now has a synchronous singleton instantiation of the wasm, we can plumb that compiled module into the async worker version to avoid the duplication.
  • The above fixes reduce the size of index.js to 11mb, and this compresses very nicely to ~1.7mb for serving over web.
  • We still produce a "runnable" container in bb.js, for executing the tests, but we use yarn pack to produce the publishable artefact, which is what we import downstream. This cuts out 300mb of node_modules, which may just get reimported downstream, but should at least remove duplication and strip back to production on dependencies.
  • We remove gubbins from bb wasm container that circuits cpp needed, as we have killed it off.
  • For sandbox and cli we:
    • Fix the "productionify" step to clear the cache after to the prod install. It was originally this way around due to use of pnp instead of node_modules (if we really care about size, maybe we should reconsider pnpifying the final runtime?). But, if we're not using pnp, we should purge the .yarn/cache.
    • Blow away all the src folders as they're non negligible in size.
    • Building final "slim" image cherry picks a little more carefully to avoid pulling in some unneeding things (e.g. nargo).

Estimate of compressed containers at present:
cli size from 277MB to ~98MB
sandbox from 311MB to ~107MB

If we can get a shared layer between these two containers we effective half the data again. Maybe in a later PR.
A pure npm install, once compressed was about 87MB so this would be almost on par.

Copy link

New dependencies detected. Learn more about Socket for GitHub ↗︎

Packages Version New capabilities Transitives Size Publisher
@types/lodash.compact 3.0.7 None +0 3.8 kB types
@types/lodash.clonedeepwith 4.5.7 None +0 3.88 kB types
@types/sha256 0.2.0 None +0 2.92 kB types
vite 4.4.8 eval, network, filesystem, shell, environment +0 3.33 MB vitebot
lodash.partition 4.6.0 None +0 68.1 kB jdalton
@esm-bundle/chai 4.3.4 None +0 1.04 MB joeldenning
@docusaurus/plugin-ideal-image 2.4.1 environment +0 22.5 kB slorber
@nomicfoundation/hardhat-chai-matchers 2.0.2 None +0 254 kB fvictorio
@libp2p/peer-id 3.0.2 None +1 78.7 kB npm-service-account-libp2p

@AztecBot
Copy link
Collaborator

AztecBot commented Nov 29, 2023

Benchmark results

Metrics with a significant change:

  • note_history_trial_decrypting_time_in_ms (10): 233 (-35%)
  • note_trial_decrypting_time_in_ms (32): 57.7 (+88%)
Detailed results

All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.

This benchmark source data is available in JSON format on S3 here.

Values are compared against data from master at commit d356bac7 and shown if the difference exceeds 1%.

L2 block published to L1

Each column represents the number of txs on an L2 block published to L1.

Metric 8 txs 32 txs 128 txs
l1_rollup_calldata_size_in_bytes 45,444 179,588 716,132
l1_rollup_calldata_gas 222,972 868,064 3,449,456
l1_rollup_execution_gas 842,059 3,595,172 22,204,825
l2_block_processing_time_in_ms 2,026 7,722 31,532
note_successful_decrypting_time_in_ms 324 (+2%) 930 (+3%) 3,337
note_trial_decrypting_time_in_ms 33.4 (+21%) ⚠️ 57.7 (+88%) 200 (+1%)
l2_block_building_time_in_ms 18,884 74,242 (-2%) 297,941 (+1%)
l2_block_rollup_simulation_time_in_ms 15,324 60,232 (-3%) 241,795 (+1%)
l2_block_public_tx_process_time_in_ms 3,510 13,858 55,582

L2 chain processing

Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric 5 blocks 10 blocks
node_history_sync_time_in_ms 22,885 44,637
note_history_successful_decrypting_time_in_ms 2,263 4,360 (-1%)
note_history_trial_decrypting_time_in_ms 166 (+3%) ⚠️ 233 (-35%)
node_database_size_in_bytes 3,305,783 3,649,592
pxe_database_size_in_bytes 29,748 59,307

Circuits stats

Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit circuit_simulation_time_in_ms circuit_input_size_in_bytes circuit_output_size_in_bytes
private-kernel-init 201 (+1%) 43,077 20,441
private-kernel-ordering 115 25,833 9,689
base-rollup 2,546 659,500 873
root-rollup 88.5 (-5%) 4,072 1,097
private-kernel-inner 261 64,484 20,441
public-kernel-private-input 172 25,203 20,441
public-kernel-non-first-iteration 169 25,245 20,441
merge-rollup 11.1 2,592 873

Miscellaneous

Transaction sizes based on how many contracts are deployed in the tx.

Metric 0 deployed contracts 1 deployed contracts
tx_size_in_bytes 10,323 25,938

@charlielye charlielye changed the title chore: Optimise bb.js package size to unbloat final containers. chore: Optimise bb.js package size and sandox/cli dockerfiles to unbloat final containers. Nov 29, 2023
Copy link
Collaborator

@ludamad ludamad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@charlielye charlielye enabled auto-merge (squash) November 29, 2023 16:12
@charlielye charlielye merged commit cb3db5d into master Nov 29, 2023
80 of 82 checks passed
@charlielye charlielye deleted the cl/bb-js-size-optimise branch November 29, 2023 18:53
rahul-kothari pushed a commit that referenced this pull request Dec 5, 2023
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-packages: 0.16.2</summary>

##
[0.16.2](aztec-packages-v0.16.1...aztec-packages-v0.16.2)
(2023-12-05)


### Features

* Add tree snapshots
([#3468](#3468))
([7a86bb3](7a86bb3))
* **AVM:** First version for mini AVM (ADD, RETURN, CALLDATACOPY)
([#3439](#3439))
([b3af146](b3af146))
* Circuit optimized indexed tree batch insertion
([#3367](#3367))
([187d2f7](187d2f7))
* Devnet
([#3473](#3473))
([97c40c2](97c40c2))
* **docs:** Add simple private voting tutorial
([#3402](#3402))
([a6e0352](a6e0352))
* **docs:** Document slow update tree
([#3416](#3416))
([8e9f103](8e9f103))
* Flavor refactor, reduce duplication
([#3407](#3407))
([8d6b013](8d6b013))
* Inclusion and non-inclusion proofs experiment
([#3255](#3255))
([b911e65](b911e65)),
closes
[#2572](#2572)
[#2584](#2584)
* New Poseidon2 circuit builder gates
([#3346](#3346))
([91cb369](91cb369))
* New Poseidon2 relations
([#3406](#3406))
([14b9736](14b9736))
* Pull latest noir for brillig optimizations
([#3464](#3464))
([d356bac](d356bac))
* Refactor StandardIndexedTree for abstract leaves and preimages and
optimized it
([#3530](#3530))
([63b9cdc](63b9cdc))
* Removing historical roots from circuits
([#3544](#3544))
([9f682cb](9f682cb))
* Seperate pil files for sub machines
([#3454](#3454))
([d09d6f5](d09d6f5))
* Throw compile time error if contract has too many fns
([#3536](#3536))
([ad66ad0](ad66ad0))
* Use tree snapshots in aztec-node/pxe/oracles
([#3504](#3504))
([6e40427](6e40427))
* Yellow paper cross-chain communication
([#3477](#3477))
([d51df8c](d51df8c))


### Bug Fixes

* Check version, chainid and sender for cross-chain l1 to l2 msgs
([#3457](#3457))
([d251703](d251703))
* **ci:** Add DEPLOY_TAG in fork log group
([#3510](#3510))
([f021041](f021041))
* **ci:** Check if l1 contracts img has been deployed
([#3531](#3531))
([ac1f03c](ac1f03c))
* **ci:** Comment out LB listeners (for now)
([#3519](#3519))
([640aabc](640aabc))
* **ci:** Count for bootnode discovery service
([#3517](#3517))
([2a38788](2a38788))
* **ci:** Define REPOSITORY in deploy_l1_contracts
([#3514](#3514))
([b246d1b](b246d1b))
* **ci:** Don't deploy to npm on master merge
([#3502](#3502))
([a138860](a138860))
* **ci:** Env vars for deploying l1-contracts
([#3513](#3513))
([27106b2](27106b2))
* **ci:** Export FORK_API_KEY from setup_env
([#3512](#3512))
([7e81e2c](7e81e2c))
* **ci:** Fix docker architecture for devnet packages
([#3505](#3505))
([66d0287](66d0287))
* **ci:** Fix faucet vars + don't deploy contracts from node
([#3553](#3553))
([c7176f6](c7176f6))
* **ci:** L1 contracts directories
([#3545](#3545))
([63dd0c8](63dd0c8))
* **ci:** Login to ecr to fetch contracts image
([#3538](#3538))
([b033538](b033538))
* **ci:** Remove unused ADDRESS vars & export private key vars
([#3520](#3520))
([d889359](d889359))
* **ci:** Set default value for $TO_TAINT
([#3508](#3508))
([8b6688a](8b6688a))
* **ci:** Terraform listener resources
([#3534](#3534))
([c3b9cce](c3b9cce))
* **ci:** Terraform_deploy for devnet
([#3516](#3516))
([ba3803e](ba3803e))
* **ci:** Tf variable references &
formatting([#3522](#3522))
([d37cf52](d37cf52))
* Disable e2e-slow-tree
([#3459](#3459))
([5927103](5927103))
* **docs:** Update package name of aztec-cli
([#3474](#3474))
([98d7ba0](98d7ba0))
* Double slash in deployed faucet routes
([#3555](#3555))
([6c704a5](6c704a5))
* Faucet lb_listener priority
([#3554](#3554))
([3f56dd7](3f56dd7))
* Handling low_nullifier.next_value equal to 0
([#3562](#3562))
([c800502](c800502)),
closes
[#3550](#3550)
* Remove x86_64 form l1-contracts img tag
([#3549](#3549))
([6828f1a](6828f1a))
* Throw error if fn sig has whitespaces
([#3509](#3509))
([7671063](7671063)),
closes
[#3055](#3055)


### Miscellaneous

* (yellow paper) public-vm section of yellow paper
([#3493](#3493))
([8ff3780](8ff3780))
* Add mermaid diagram support
([#3499](#3499))
([537d552](537d552))
* Add yellow paper build check to CI
([#3490](#3490))
([3ebd2f2](3ebd2f2))
* **avm:** Enable AVM unit tests in CI
([#3463](#3463))
([051dda9](051dda9)),
closes
[#3461](#3461)
* **bb:** Pointer_view to reference-based get_all
([#3495](#3495))
([50d7327](50d7327))
* **bb:** Reuse entities from GoblinUltra in GoblinUltraRecursive
([#3521](#3521))
([8259636](8259636))
* Build the acir test vectors as part of CI.
([#3447](#3447))
([1a2d1f8](1a2d1f8))
* Containers reduced to ~100MB total. ~30s installation.
([#3487](#3487))
([b49cef2](b49cef2))
* **docs:** Fix broken Noir stdlib link
([#3496](#3496))
([787d59a](787d59a))
* Field-agnostic and reusable transcript
([#3433](#3433))
([d78775a](d78775a))
* Fix broken link in txs in yellow paper
([#3484](#3484))
([798565d](798565d))
* Fix yellow paper build error
([32881a4](32881a4))
* Fixed typo in build system
([#3501](#3501))
([3a80ac2](3a80ac2))
* Increase functions per contract from 16 to 32
([#3503](#3503))
([ebdeea3](ebdeea3))
* Naming fixes
([#3476](#3476))
([1db30bf](1db30bf))
* Optimise bb.js package size and sandox/cli dockerfiles to unbloat
final containers.
([#3462](#3462))
([cb3db5d](cb3db5d))
* Pin node version in docker base images and bump nvmrc
([#3537](#3537))
([5d3895a](5d3895a))
* Recursive verifier updates
([#3452](#3452))
([dbb4a12](dbb4a12))
* Refactor `WitnessEntities` to be able to derive `WitnessCommitments`
from it
([#3479](#3479))
([9c9b561](9c9b561))
* Remove temporary logging
([#3466](#3466))
([8c8387b](8c8387b))
* Transcript handled through shared_ptr
([#3434](#3434))
([30fca33](30fca33))
* Typo fixes
([#3488](#3488))
([d9a44dc](d9a44dc))
* **yellow_paper:** Public&lt;&gt;private messaging
([#3491](#3491))
([6ecc406](6ecc406))


### Documentation

* Add transaction section to yellow paper
([#3418](#3418))
([44bf30b](44bf30b))
* Apply comments from Jan on contracts
([#3539](#3539))
([e351873](e351873))
* Fees update in yellow paper
([#3486](#3486))
([a8b2608](a8b2608))
* First go at generated AVM instruction set doc
([#3469](#3469))
([8cc54a4](8cc54a4))
* Further update to the yellow paper
([#3542](#3542))
([751bb6a](751bb6a))
* Yellow paper updates
([#3478](#3478))
([11f754d](11f754d))
* Yellow paper updates for private message delivery
([#3472](#3472))
([6ba9e18](6ba9e18))
* **yellow-paper:** Sync, enqueued, and static calls
([#3494](#3494))
([00835c6](00835c6)),
closes
[#3108](#3108)
* **yellowpaper:** Instruction set updates and fixes
([#3515](#3515))
([bfb61dd](bfb61dd))
</details>

<details><summary>barretenberg.js: 0.16.2</summary>

##
[0.16.2](barretenberg.js-v0.16.1...barretenberg.js-v0.16.2)
(2023-12-05)


### Miscellaneous

* Optimise bb.js package size and sandox/cli dockerfiles to unbloat
final containers.
([#3462](#3462))
([cb3db5d](cb3db5d))
* Pin node version in docker base images and bump nvmrc
([#3537](#3537))
([5d3895a](5d3895a))
</details>

<details><summary>barretenberg: 0.16.2</summary>

##
[0.16.2](barretenberg-v0.16.1...barretenberg-v0.16.2)
(2023-12-05)


### Features

* **AVM:** First version for mini AVM (ADD, RETURN, CALLDATACOPY)
([#3439](#3439))
([b3af146](b3af146))
* Flavor refactor, reduce duplication
([#3407](#3407))
([8d6b013](8d6b013))
* New Poseidon2 circuit builder gates
([#3346](#3346))
([91cb369](91cb369))
* New Poseidon2 relations
([#3406](#3406))
([14b9736](14b9736))
* Pull latest noir for brillig optimizations
([#3464](#3464))
([d356bac](d356bac))
* Seperate pil files for sub machines
([#3454](#3454))
([d09d6f5](d09d6f5))


### Miscellaneous

* **avm:** Enable AVM unit tests in CI
([#3463](#3463))
([051dda9](051dda9)),
closes
[#3461](#3461)
* **bb:** Pointer_view to reference-based get_all
([#3495](#3495))
([50d7327](50d7327))
* **bb:** Reuse entities from GoblinUltra in GoblinUltraRecursive
([#3521](#3521))
([8259636](8259636))
* Build the acir test vectors as part of CI.
([#3447](#3447))
([1a2d1f8](1a2d1f8))
* Field-agnostic and reusable transcript
([#3433](#3433))
([d78775a](d78775a))
* Optimise bb.js package size and sandox/cli dockerfiles to unbloat
final containers.
([#3462](#3462))
([cb3db5d](cb3db5d))
* Pin node version in docker base images and bump nvmrc
([#3537](#3537))
([5d3895a](5d3895a))
* Recursive verifier updates
([#3452](#3452))
([dbb4a12](dbb4a12))
* Refactor `WitnessEntities` to be able to derive `WitnessCommitments`
from it
([#3479](#3479))
([9c9b561](9c9b561))
* Transcript handled through shared_ptr
([#3434](#3434))
([30fca33](30fca33))
* Typo fixes
([#3488](#3488))
([d9a44dc](d9a44dc))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request Dec 6, 2023
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-packages: 0.16.2</summary>

##
[0.16.2](AztecProtocol/aztec-packages@aztec-packages-v0.16.1...aztec-packages-v0.16.2)
(2023-12-05)


### Features

* Add tree snapshots
([#3468](AztecProtocol/aztec-packages#3468))
([7a86bb3](AztecProtocol/aztec-packages@7a86bb3))
* **AVM:** First version for mini AVM (ADD, RETURN, CALLDATACOPY)
([#3439](AztecProtocol/aztec-packages#3439))
([b3af146](AztecProtocol/aztec-packages@b3af146))
* Circuit optimized indexed tree batch insertion
([#3367](AztecProtocol/aztec-packages#3367))
([187d2f7](AztecProtocol/aztec-packages@187d2f7))
* Devnet
([#3473](AztecProtocol/aztec-packages#3473))
([97c40c2](AztecProtocol/aztec-packages@97c40c2))
* **docs:** Add simple private voting tutorial
([#3402](AztecProtocol/aztec-packages#3402))
([a6e0352](AztecProtocol/aztec-packages@a6e0352))
* **docs:** Document slow update tree
([#3416](AztecProtocol/aztec-packages#3416))
([8e9f103](AztecProtocol/aztec-packages@8e9f103))
* Flavor refactor, reduce duplication
([#3407](AztecProtocol/aztec-packages#3407))
([8d6b013](AztecProtocol/aztec-packages@8d6b013))
* Inclusion and non-inclusion proofs experiment
([#3255](AztecProtocol/aztec-packages#3255))
([b911e65](AztecProtocol/aztec-packages@b911e65)),
closes
[#2572](AztecProtocol/aztec-packages#2572)
[#2584](AztecProtocol/aztec-packages#2584)
* New Poseidon2 circuit builder gates
([#3346](AztecProtocol/aztec-packages#3346))
([91cb369](AztecProtocol/aztec-packages@91cb369))
* New Poseidon2 relations
([#3406](AztecProtocol/aztec-packages#3406))
([14b9736](AztecProtocol/aztec-packages@14b9736))
* Pull latest noir for brillig optimizations
([#3464](AztecProtocol/aztec-packages#3464))
([d356bac](AztecProtocol/aztec-packages@d356bac))
* Refactor StandardIndexedTree for abstract leaves and preimages and
optimized it
([#3530](AztecProtocol/aztec-packages#3530))
([63b9cdc](AztecProtocol/aztec-packages@63b9cdc))
* Removing historical roots from circuits
([#3544](AztecProtocol/aztec-packages#3544))
([9f682cb](AztecProtocol/aztec-packages@9f682cb))
* Seperate pil files for sub machines
([#3454](AztecProtocol/aztec-packages#3454))
([d09d6f5](AztecProtocol/aztec-packages@d09d6f5))
* Throw compile time error if contract has too many fns
([#3536](AztecProtocol/aztec-packages#3536))
([ad66ad0](AztecProtocol/aztec-packages@ad66ad0))
* Use tree snapshots in aztec-node/pxe/oracles
([#3504](AztecProtocol/aztec-packages#3504))
([6e40427](AztecProtocol/aztec-packages@6e40427))
* Yellow paper cross-chain communication
([#3477](AztecProtocol/aztec-packages#3477))
([d51df8c](AztecProtocol/aztec-packages@d51df8c))


### Bug Fixes

* Check version, chainid and sender for cross-chain l1 to l2 msgs
([#3457](AztecProtocol/aztec-packages#3457))
([d251703](AztecProtocol/aztec-packages@d251703))
* **ci:** Add DEPLOY_TAG in fork log group
([#3510](AztecProtocol/aztec-packages#3510))
([f021041](AztecProtocol/aztec-packages@f021041))
* **ci:** Check if l1 contracts img has been deployed
([#3531](AztecProtocol/aztec-packages#3531))
([ac1f03c](AztecProtocol/aztec-packages@ac1f03c))
* **ci:** Comment out LB listeners (for now)
([#3519](AztecProtocol/aztec-packages#3519))
([640aabc](AztecProtocol/aztec-packages@640aabc))
* **ci:** Count for bootnode discovery service
([#3517](AztecProtocol/aztec-packages#3517))
([2a38788](AztecProtocol/aztec-packages@2a38788))
* **ci:** Define REPOSITORY in deploy_l1_contracts
([#3514](AztecProtocol/aztec-packages#3514))
([b246d1b](AztecProtocol/aztec-packages@b246d1b))
* **ci:** Don't deploy to npm on master merge
([#3502](AztecProtocol/aztec-packages#3502))
([a138860](AztecProtocol/aztec-packages@a138860))
* **ci:** Env vars for deploying l1-contracts
([#3513](AztecProtocol/aztec-packages#3513))
([27106b2](AztecProtocol/aztec-packages@27106b2))
* **ci:** Export FORK_API_KEY from setup_env
([#3512](AztecProtocol/aztec-packages#3512))
([7e81e2c](AztecProtocol/aztec-packages@7e81e2c))
* **ci:** Fix docker architecture for devnet packages
([#3505](AztecProtocol/aztec-packages#3505))
([66d0287](AztecProtocol/aztec-packages@66d0287))
* **ci:** Fix faucet vars + don't deploy contracts from node
([#3553](AztecProtocol/aztec-packages#3553))
([c7176f6](AztecProtocol/aztec-packages@c7176f6))
* **ci:** L1 contracts directories
([#3545](AztecProtocol/aztec-packages#3545))
([63dd0c8](AztecProtocol/aztec-packages@63dd0c8))
* **ci:** Login to ecr to fetch contracts image
([#3538](AztecProtocol/aztec-packages#3538))
([b033538](AztecProtocol/aztec-packages@b033538))
* **ci:** Remove unused ADDRESS vars & export private key vars
([#3520](AztecProtocol/aztec-packages#3520))
([d889359](AztecProtocol/aztec-packages@d889359))
* **ci:** Set default value for $TO_TAINT
([#3508](AztecProtocol/aztec-packages#3508))
([8b6688a](AztecProtocol/aztec-packages@8b6688a))
* **ci:** Terraform listener resources
([#3534](AztecProtocol/aztec-packages#3534))
([c3b9cce](AztecProtocol/aztec-packages@c3b9cce))
* **ci:** Terraform_deploy for devnet
([#3516](AztecProtocol/aztec-packages#3516))
([ba3803e](AztecProtocol/aztec-packages@ba3803e))
* **ci:** Tf variable references &
formatting([#3522](AztecProtocol/aztec-packages#3522))
([d37cf52](AztecProtocol/aztec-packages@d37cf52))
* Disable e2e-slow-tree
([#3459](AztecProtocol/aztec-packages#3459))
([5927103](AztecProtocol/aztec-packages@5927103))
* **docs:** Update package name of aztec-cli
([#3474](AztecProtocol/aztec-packages#3474))
([98d7ba0](AztecProtocol/aztec-packages@98d7ba0))
* Double slash in deployed faucet routes
([#3555](AztecProtocol/aztec-packages#3555))
([6c704a5](AztecProtocol/aztec-packages@6c704a5))
* Faucet lb_listener priority
([#3554](AztecProtocol/aztec-packages#3554))
([3f56dd7](AztecProtocol/aztec-packages@3f56dd7))
* Handling low_nullifier.next_value equal to 0
([#3562](AztecProtocol/aztec-packages#3562))
([c800502](AztecProtocol/aztec-packages@c800502)),
closes
[#3550](AztecProtocol/aztec-packages#3550)
* Remove x86_64 form l1-contracts img tag
([#3549](AztecProtocol/aztec-packages#3549))
([6828f1a](AztecProtocol/aztec-packages@6828f1a))
* Throw error if fn sig has whitespaces
([#3509](AztecProtocol/aztec-packages#3509))
([7671063](AztecProtocol/aztec-packages@7671063)),
closes
[#3055](AztecProtocol/aztec-packages#3055)


### Miscellaneous

* (yellow paper) public-vm section of yellow paper
([#3493](AztecProtocol/aztec-packages#3493))
([8ff3780](AztecProtocol/aztec-packages@8ff3780))
* Add mermaid diagram support
([#3499](AztecProtocol/aztec-packages#3499))
([537d552](AztecProtocol/aztec-packages@537d552))
* Add yellow paper build check to CI
([#3490](AztecProtocol/aztec-packages#3490))
([3ebd2f2](AztecProtocol/aztec-packages@3ebd2f2))
* **avm:** Enable AVM unit tests in CI
([#3463](AztecProtocol/aztec-packages#3463))
([051dda9](AztecProtocol/aztec-packages@051dda9)),
closes
[#3461](AztecProtocol/aztec-packages#3461)
* **bb:** Pointer_view to reference-based get_all
([#3495](AztecProtocol/aztec-packages#3495))
([50d7327](AztecProtocol/aztec-packages@50d7327))
* **bb:** Reuse entities from GoblinUltra in GoblinUltraRecursive
([#3521](AztecProtocol/aztec-packages#3521))
([8259636](AztecProtocol/aztec-packages@8259636))
* Build the acir test vectors as part of CI.
([#3447](AztecProtocol/aztec-packages#3447))
([1a2d1f8](AztecProtocol/aztec-packages@1a2d1f8))
* Containers reduced to ~100MB total. ~30s installation.
([#3487](AztecProtocol/aztec-packages#3487))
([b49cef2](AztecProtocol/aztec-packages@b49cef2))
* **docs:** Fix broken Noir stdlib link
([#3496](AztecProtocol/aztec-packages#3496))
([787d59a](AztecProtocol/aztec-packages@787d59a))
* Field-agnostic and reusable transcript
([#3433](AztecProtocol/aztec-packages#3433))
([d78775a](AztecProtocol/aztec-packages@d78775a))
* Fix broken link in txs in yellow paper
([#3484](AztecProtocol/aztec-packages#3484))
([798565d](AztecProtocol/aztec-packages@798565d))
* Fix yellow paper build error
([32881a4](AztecProtocol/aztec-packages@32881a4))
* Fixed typo in build system
([#3501](AztecProtocol/aztec-packages#3501))
([3a80ac2](AztecProtocol/aztec-packages@3a80ac2))
* Increase functions per contract from 16 to 32
([#3503](AztecProtocol/aztec-packages#3503))
([ebdeea3](AztecProtocol/aztec-packages@ebdeea3))
* Naming fixes
([#3476](AztecProtocol/aztec-packages#3476))
([1db30bf](AztecProtocol/aztec-packages@1db30bf))
* Optimise bb.js package size and sandox/cli dockerfiles to unbloat
final containers.
([#3462](AztecProtocol/aztec-packages#3462))
([cb3db5d](AztecProtocol/aztec-packages@cb3db5d))
* Pin node version in docker base images and bump nvmrc
([#3537](AztecProtocol/aztec-packages#3537))
([5d3895a](AztecProtocol/aztec-packages@5d3895a))
* Recursive verifier updates
([#3452](AztecProtocol/aztec-packages#3452))
([dbb4a12](AztecProtocol/aztec-packages@dbb4a12))
* Refactor `WitnessEntities` to be able to derive `WitnessCommitments`
from it
([#3479](AztecProtocol/aztec-packages#3479))
([9c9b561](AztecProtocol/aztec-packages@9c9b561))
* Remove temporary logging
([#3466](AztecProtocol/aztec-packages#3466))
([8c8387b](AztecProtocol/aztec-packages@8c8387b))
* Transcript handled through shared_ptr
([#3434](AztecProtocol/aztec-packages#3434))
([30fca33](AztecProtocol/aztec-packages@30fca33))
* Typo fixes
([#3488](AztecProtocol/aztec-packages#3488))
([d9a44dc](AztecProtocol/aztec-packages@d9a44dc))
* **yellow_paper:** Public&lt;&gt;private messaging
([#3491](AztecProtocol/aztec-packages#3491))
([6ecc406](AztecProtocol/aztec-packages@6ecc406))


### Documentation

* Add transaction section to yellow paper
([#3418](AztecProtocol/aztec-packages#3418))
([44bf30b](AztecProtocol/aztec-packages@44bf30b))
* Apply comments from Jan on contracts
([#3539](AztecProtocol/aztec-packages#3539))
([e351873](AztecProtocol/aztec-packages@e351873))
* Fees update in yellow paper
([#3486](AztecProtocol/aztec-packages#3486))
([a8b2608](AztecProtocol/aztec-packages@a8b2608))
* First go at generated AVM instruction set doc
([#3469](AztecProtocol/aztec-packages#3469))
([8cc54a4](AztecProtocol/aztec-packages@8cc54a4))
* Further update to the yellow paper
([#3542](AztecProtocol/aztec-packages#3542))
([751bb6a](AztecProtocol/aztec-packages@751bb6a))
* Yellow paper updates
([#3478](AztecProtocol/aztec-packages#3478))
([11f754d](AztecProtocol/aztec-packages@11f754d))
* Yellow paper updates for private message delivery
([#3472](AztecProtocol/aztec-packages#3472))
([6ba9e18](AztecProtocol/aztec-packages@6ba9e18))
* **yellow-paper:** Sync, enqueued, and static calls
([#3494](AztecProtocol/aztec-packages#3494))
([00835c6](AztecProtocol/aztec-packages@00835c6)),
closes
[#3108](AztecProtocol/aztec-packages#3108)
* **yellowpaper:** Instruction set updates and fixes
([#3515](AztecProtocol/aztec-packages#3515))
([bfb61dd](AztecProtocol/aztec-packages@bfb61dd))
</details>

<details><summary>barretenberg.js: 0.16.2</summary>

##
[0.16.2](AztecProtocol/aztec-packages@barretenberg.js-v0.16.1...barretenberg.js-v0.16.2)
(2023-12-05)


### Miscellaneous

* Optimise bb.js package size and sandox/cli dockerfiles to unbloat
final containers.
([#3462](AztecProtocol/aztec-packages#3462))
([cb3db5d](AztecProtocol/aztec-packages@cb3db5d))
* Pin node version in docker base images and bump nvmrc
([#3537](AztecProtocol/aztec-packages#3537))
([5d3895a](AztecProtocol/aztec-packages@5d3895a))
</details>

<details><summary>barretenberg: 0.16.2</summary>

##
[0.16.2](AztecProtocol/aztec-packages@barretenberg-v0.16.1...barretenberg-v0.16.2)
(2023-12-05)


### Features

* **AVM:** First version for mini AVM (ADD, RETURN, CALLDATACOPY)
([#3439](AztecProtocol/aztec-packages#3439))
([b3af146](AztecProtocol/aztec-packages@b3af146))
* Flavor refactor, reduce duplication
([#3407](AztecProtocol/aztec-packages#3407))
([8d6b013](AztecProtocol/aztec-packages@8d6b013))
* New Poseidon2 circuit builder gates
([#3346](AztecProtocol/aztec-packages#3346))
([91cb369](AztecProtocol/aztec-packages@91cb369))
* New Poseidon2 relations
([#3406](AztecProtocol/aztec-packages#3406))
([14b9736](AztecProtocol/aztec-packages@14b9736))
* Pull latest noir for brillig optimizations
([#3464](AztecProtocol/aztec-packages#3464))
([d356bac](AztecProtocol/aztec-packages@d356bac))
* Seperate pil files for sub machines
([#3454](AztecProtocol/aztec-packages#3454))
([d09d6f5](AztecProtocol/aztec-packages@d09d6f5))


### Miscellaneous

* **avm:** Enable AVM unit tests in CI
([#3463](AztecProtocol/aztec-packages#3463))
([051dda9](AztecProtocol/aztec-packages@051dda9)),
closes
[#3461](AztecProtocol/aztec-packages#3461)
* **bb:** Pointer_view to reference-based get_all
([#3495](AztecProtocol/aztec-packages#3495))
([50d7327](AztecProtocol/aztec-packages@50d7327))
* **bb:** Reuse entities from GoblinUltra in GoblinUltraRecursive
([#3521](AztecProtocol/aztec-packages#3521))
([8259636](AztecProtocol/aztec-packages@8259636))
* Build the acir test vectors as part of CI.
([#3447](AztecProtocol/aztec-packages#3447))
([1a2d1f8](AztecProtocol/aztec-packages@1a2d1f8))
* Field-agnostic and reusable transcript
([#3433](AztecProtocol/aztec-packages#3433))
([d78775a](AztecProtocol/aztec-packages@d78775a))
* Optimise bb.js package size and sandox/cli dockerfiles to unbloat
final containers.
([#3462](AztecProtocol/aztec-packages#3462))
([cb3db5d](AztecProtocol/aztec-packages@cb3db5d))
* Pin node version in docker base images and bump nvmrc
([#3537](AztecProtocol/aztec-packages#3537))
([5d3895a](AztecProtocol/aztec-packages@5d3895a))
* Recursive verifier updates
([#3452](AztecProtocol/aztec-packages#3452))
([dbb4a12](AztecProtocol/aztec-packages@dbb4a12))
* Refactor `WitnessEntities` to be able to derive `WitnessCommitments`
from it
([#3479](AztecProtocol/aztec-packages#3479))
([9c9b561](AztecProtocol/aztec-packages@9c9b561))
* Transcript handled through shared_ptr
([#3434](AztecProtocol/aztec-packages#3434))
([30fca33](AztecProtocol/aztec-packages@30fca33))
* Typo fixes
([#3488](AztecProtocol/aztec-packages#3488))
([d9a44dc](AztecProtocol/aztec-packages@d9a44dc))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants